﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using DBAccess;
using SSPharma.Common;
using SSPharma.Model;
using System.Data.Common;
using SSPharma.Biz.Common;
using System.Transactions;

namespace SSPharma.Biz.DanhMuc
{
    class BizDanhMucHoanDoiDVT
    {
        //khai báo hàm Common dùng để lấy các hàm dùng chung
        private BizCommon _BizCommon = new BizCommon();
        /// <summary>
        /// User: TAMNN 21/07/2014
        /// lấy đơn vị hoán đổi theo mã đơn vị hoán đổi
        /// </summary>
        /// <param name="Ma"></param>
        /// <returns></returns>
        public DataTable ft_GetDataDanhMucHoanDoiDVTTheoMa(string DonViGoc,string DonViApDung, string PhamVi, string Ma)
        {
            StringBuilder strSQL = new StringBuilder();
            strSQL.Append(" SELECT a.* from HT_DM_HoanDoiDVT a");
            strSQL.Append(" where DonViGoc = @DonViGoc");
            strSQL.Append(" and DonViApDung = @DonViApDung");
            strSQL.Append(" and PhamVi = @PhamVi");
            strSQL.Append(" and Ma = @Ma");
            SQLServer.Param[] Params = new SQLServer.Param[4];
            Params[0] = new SQLServer.Param("@DonViGoc", DonViGoc);
            Params[1] = new SQLServer.Param("@DonViApDung", DonViApDung);
            Params[2] = new SQLServer.Param("@PhamVi", PhamVi);
            Params[3] = new SQLServer.Param("@Ma", Ma);
            return Global.DataFactory.GetDataTable(strSQL.ToString(), Params);
        }
        /// <summary>
        /// User: TAMNN 21/07/2014
        /// Lay cau truc de luu du lieu xong database
        /// </summary>
        /// <returns></returns>
        public DataSet fs_LayCauTrucTable()
        {
            DataSet dsdata = new DataSet();
            StringBuilder strSQL = new StringBuilder();
            strSQL.Append(" SELECT a.* from HT_DM_HoanDoiDVT a where 1=2");
            DataTable dt_HoanDoiDVT = Global.DataFactory.GetDataTable(strSQL.ToString());
            dt_HoanDoiDVT.TableName = "dt_HoanDoiDVT";
            dsdata.Tables.Add(dt_HoanDoiDVT);
            return dsdata;
        }
        /// <summary>
        /// User: TAMNN 21/07/2014
        /// Thêm danh mục hóan đổi dvt.
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="TienTo"></param>
        public void fg_InsertDanhMucHoanDoiDVT(DataTable dt, string TienTo)
        {
            try
            {
                string query_HoanDoiDVT = "Select * from HT_DM_HoanDoiDVT where 1 = 2";
                using (TransactionScope scope = new TransactionScope())
                {
                    Global.DataFactory.RunSaveData(dt, query_HoanDoiDVT);
                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                throw new System.Configuration.Provider.ProviderException(ex.Message);
            }
        }
        /// <summary>
        /// User: TAMNN 21/07/2014
        /// Cập nhật danh mục hoán đổi đơn vị tính
        /// </summary>
        /// <param name="dt"></param>
        public void fg_UpdateDanhMucHoanDoiDVT(DataTable dt)
        {
            try
            {
                string query_HoanDoiDVT = "Select * from HT_DM_HoanDoiDVT where 1 = 2";
                using (TransactionScope scope = new TransactionScope())
                {
                    Global.DataFactory.RunSaveData(dt, query_HoanDoiDVT);
                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                throw new System.Configuration.Provider.ProviderException(ex.Message);
            }
        }
        /// <summary>
        /// User: TAMNN 23/07/2014
        /// Mục đích: lấy danh sách theo danh mục
        /// </summary>
        /// <returns></returns>
        public DataTable ft_GetListdata(IList<string> list, string Orderby)
        {
            string str = string.Join(",", list.ToArray());
            StringBuilder strSQL = new StringBuilder();
            strSQL.Append(" SELECT ");
            strSQL.Append(str);
            strSQL.Append(" from HT_DM_HoanDoiDVT with(nolock)");
            strSQL.Append(!string.IsNullOrEmpty(Orderby) ? (" order by " + Orderby) : "");
            return Global.DataFactory.GetDataTable(strSQL.ToString());
        }
        /// <summary>
        /// User:TAMNN 28/07/2014 
        /// Mục đích: kiểm tra mã đơn vị hoán đổi đã tồn tại hay chưa
        /// </summary>
        /// <param name="p_sTableName"></param>
        /// <param name="p_sfill"></param>
        /// <param name="p_sGiatri"></param>
        /// <param name="p_sDieuKien"></param>
        /// <returns></returns>
        public DataTable fs_CheckDataExistsHoanDoiDVT(string p_sGiatri1, string p_sGiatri2, string p_sGiatri3, string p_sGiatri4)
        {
            return _BizCommon.ft_LayDuLieuTrongTable("HT_DM_HoanDoiDVT", "DonViGoc  = N'" + p_sGiatri1 + "' and DonViApDung = N'" + p_sGiatri2 + "' and PhamVi = N'" + p_sGiatri3 + "' and Ma = N'" + p_sGiatri4 + "'", "");
        }
        /// <summary>
        /// User: TAMNN 31/07/2014
        /// Mục đích: lấy cbo phạm vi
        /// </summary>
        /// <returns></returns>
        public IList<cboCommon> fl_LisPhamVi()
        {
            List<cboCommon> items = new List<cboCommon>() 
            {
                new cboCommon()
                {
                    Id = "ALL",
                    Name = "ALL     Tất cả vật t-"
                },
                 new cboCommon()
                {
                    Id = "GROUP",
                    Name = "GROUP Nhóm vật t-"
                },
                 new cboCommon()
                {
                    Id = "ONE",
                    Name = "ONE    Một vật tư"
                },

            };
            return items;
        }
        /// <summary>
        /// User: TAMNN 31/07/2014
        /// Mục đích: lấy cbo toán tử
        /// </summary>
        /// <returns></returns>
        public IList<cboCommon> fl_LisToanTu()
        {
            List<cboCommon> items = new List<cboCommon>() 
            {
                new cboCommon()
                {
                    Id = "*",
                    Name = "*"
                }
            };
            return items;
        }
    }
}
